package com.change.copy.entity;

import com.change.copy.common.WordException;
import lombok.Data;

import java.util.List;

@Data
public class Configuration {
    /**
     * 文档文件
     */
    private Word word;
    /**
     * 名字
     */
    private String name;
    /**
     * 人称 1：第一人称 2：第二人称
     */
    private String visualAngle;
    /**
     * 其他替换 主要是用于名字替换
     * 他和她替换不支持
     */
    private List<OtherChange> otherChange;
    /**
     * 性别
     * 0：女
     * 1：男
     * 2：性转
     */
    private String sex;
    /**
     * 男性关键词
     */
    private String maleKeyWords;
    /**
     * 女性关键词
     */
    private String femaleKeyWords;
    /**
     * 性转关键词
     */
    private String sexTurnKeyWords;
    /**
     * 其他关键词
     */
    private String otherKeyWords;

    @Data
    public static class Word {
        /**
         * 输入文件 是否是 resources 下的 text.txt 文件
         */
        private Boolean currentDirectory;
        /**
         * 输入地址
         */
        private String enterAddress;
        /**
         * 输出地址
         */
        private String outputAddress;
        /**
         * 输出文件名
         */
        private String outputName;
    }

    @Data
    public static class OtherChange {
        /**
         * 文本
         */
        private String text;
        /**
         * 替换文本
         */
        private String changeText;
    }

    public String getKeyWords() throws WordException {
        switch (this.sex) {
            case "0":
                return femaleKeyWords;
            case "1":
                return maleKeyWords;
            case "2":
                return sexTurnKeyWords;
        }
        throw new WordException("输入有误");
    }
}
